/*
 * Client.cpp
 *
 *  Created on: Nov 4, 2011
 *      Author: gonzalo
 */

#include "Client.h"
#include "../Translator/Translator.h"


Client::Client(std::string id,std::string host,SpaceBattleInterface* game,SocketProtocoloPlano* socket,const bool* conexionActiva){
	this->enviar = new ColaMensajes(id);
	this->recibir = new ColaMensajes(id);
	this->conexionActiva = conexionActiva;
	this->conexion = new ConexionCliente(id,host,game,socket,enviar,recibir,conexionActiva);
}

Client::~Client() {
	delete enviar;
	delete recibir;
	delete conexion;
}

void Client::setMensaje(DTO* dto){
	this->enviar->setMensaje(dto);
}

void* Client::run(){

	while(&conexionActiva){
		//Tomo los mensajes de la cola de mensajes
		DTO* dto = recibir->getMensaje();

		//Lo paso al translate para que opere.
		Translator::translate(dto);
	}

	return NULL;
}



std::string Client::getClienteName(){
	return conexion->getId();
}

void Client::terminar(){
	//Mato los hilos que lanze en el proceso
	conexion->terminar();
}
